package org.ims.inv.service.system;

import java.util.List;
import java.util.Map;
import java.util.Set;

import org.ims.inv.model.system.ModelAppRole;

import cn.trymore.core.exception.ServiceException;
import cn.trymore.core.service.ServiceGeneric;

/**
 * Service: 系统角色
 * 
 * @author Jeccy.Zhao
 *
 */
public interface ServiceAppRole
extends ServiceGeneric<ModelAppRole>
{
	/**
	 * 根据角色名获取角色
	 * 
	 * @param roleName
	 *                 角色名称
	 * @return
	 * @throws ServiceException
	 */
	ModelAppRole getRoleByName(String roleName) throws ServiceException;
	
	/**
	 * 获取所有用户角色
	 * 
	 * @return
	 * @throws ServiceException
	 */
	List<ModelAppRole> getAllRoles () throws ServiceException;
	
	/**
	 * 获取角色及对应的角色功能表, 主要用于安全控制
	 * 
	 * @return
	 * @throws ServiceException
	 */
	Map<String, Set<String>> getSecurityDataSource() throws ServiceException;
	
}
